package com.rightsidetech.activity.service;

import com.rightsidetech.activity.dto.request.ActCouponCountInfoReq;
import com.rightsidetech.activity.dto.request.ActGetCouponReq;
import com.rightsidetech.activity.dto.request.ActGetStoreCouponReq;
import com.rightsidetech.activity.dto.response.ActCouponAllResp;
import com.rightsidetech.activity.dto.response.ActCouponCountInfoResp;
import com.rightsidetech.activity.dto.response.ActCouponStoreGetResp;
import com.rightsidetech.activity.dto.response.ActFindCouponResp;
import com.rightsidetech.activity.entity.ActCouponGetRecord;
import com.rightsidetech.activity.entity.ActCouponUsedRecord;
import com.rightsidetech.commom.base.ResponseData;

import java.util.List;

/**
 * @Author: yhr
 * @Date: 2022-01-10 13:59
 */
public interface ActCouponUserService {

    ResponseData getCoupon(ActGetCouponReq req,Long level);

    List<ActCouponAllResp> couponCountInfo(Long loginInfoId, ActCouponCountInfoReq actCouponCountInfoReq);

//    void updateStatis(ActUpdateStatisReq req);

    ResponseData<List<ActFindCouponResp>> findCoupon(Long level,Long loginInfoId);

    ResponseData<List<ActCouponCountInfoResp>> cardBag(Long loginInfoId, Byte type);

    ResponseData<ActCouponCountInfoResp> codeInfo(String code,Long userInfoId,Long level);

//    int updateByPrimaryKeySelective(ActCouponActivityStatis statis);

//    int updateStatisCount(ActCouponActivityStatis statis);

//    ActCouponActivityStatis selectByAcId(Long activityId);

    ResponseData<ActCouponStoreGetResp> getCodeByActivityNoAndAgentInfoId(ActGetStoreCouponReq req, Long agentId, Long userInfoId);

    ActCouponGetRecord selectGetRecordByCode(String code);

    ActCouponGetRecord selectGetRecordByCodeAndStatusAndDate(String code);

    int updateGetRecord(ActCouponGetRecord actCouponGetRecord);

    int countUsedCouponByStoreId(Long activityId,Long storeId);

    int updateActCouponActivityCode(String code, Byte status);

    int updateUsedRecord(ActCouponUsedRecord actCouponUsedRecord);

    int insertUsedRecord(ActCouponUsedRecord actCouponUsedRecord);

}
